home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / daemons / timed / globals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1987-12-23  |  2.4 KB  |  96 lines

  1. /*
  2.  * Copyright (c) 1983 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that this notice is preserved and that due credit is given
  7.  * to the University of California at Berkeley. The name of the University
  8.  * may not be used to endorse or promote products derived from this
  9.  * software without specific prior written permission. This software
  10.  * is provided ``as is'' without express or implied warranty.
  11.  *
  12.  *    @(#)globals.h    2.5 (Berkeley) 12/23/87
  13.  */
  14.  
  15. #include <sys/param.h>
  16. #include <stdio.h>
  17. #include <sys/time.h>
  18. #include <errno.h>
  19. #include <syslog.h>
  20. #include <sys/socket.h>
  21. #include <netinet/in.h>
  22. #include <netdb.h>
  23. #include <arpa/inet.h>
  24.  
  25. extern int errno;
  26. extern int sock;
  27.  
  28. #define SAMPLEINTVL    240        /* synch() freq for master, sec */
  29. #define    MAXADJ        20        /* max correction (sec) for adjtime */
  30. /*
  31.  * Parameters for network time measurement
  32.  * of each host using ICMP timestamp requests.
  33.  */
  34. #define RANGE        20        /* best expected round-trip time, ms */
  35. #define MSGS         5        /* # of timestamp replies to average */
  36. #define TRIALS        10        /* max # of timestamp echos sent */
  37.  
  38. #define MINTOUT        360
  39. #define MAXTOUT        900
  40.  
  41. #define GOOD        1
  42. #define UNREACHABLE    2
  43. #define NONSTDTIME    3
  44. #define HOSTDOWN     0x7fffffff
  45.  
  46. #define OFF    0
  47. #define ON    1
  48.  
  49. /*
  50.  * Global and per-network states.
  51.  */
  52. #define NOMASTER     0        /* no master on any network */
  53. #define SLAVE         1
  54. #define MASTER        2
  55. #define IGNORE        4
  56. #define ALL        (SLAVE|MASTER|IGNORE)
  57. #define SUBMASTER    (SLAVE|MASTER)
  58.  
  59. #define NHOSTS        100    /* max number of hosts controlled by timed */
  60.  
  61. struct host {
  62.     char *name;
  63.     struct sockaddr_in addr;
  64.     long delta;
  65.     u_short seq;
  66. };
  67.  
  68. struct netinfo {
  69.     struct netinfo *next;
  70.     u_long net;
  71.     u_long mask;
  72.     struct in_addr my_addr;
  73.     struct sockaddr_in dest_addr;    /* broadcast addr or point-point */
  74.     long status;
  75. };
  76.  
  77. extern struct netinfo *nettab;
  78. extern int status;
  79. extern int trace;
  80. extern int sock;
  81. extern struct sockaddr_in from;
  82. extern struct netinfo *fromnet, *slavenet;
  83. extern FILE *fd;
  84. extern char hostname[];
  85. extern char tracefile[];
  86. extern struct host hp[];
  87. extern int backoff;
  88. extern long delay1, delay2;
  89. extern int slvcount;
  90. extern int nslavenets;        /* Number of nets were I could be a slave */
  91. extern int nmasternets;        /* Number of nets were I could be a master */
  92. extern int nignorednets;    /* Number of ignored nets */
  93. extern int nnets;        /* Number of nets I am connected to */
  94.  
  95. char *strcpy(), *malloc();
  96.